package model

import "time"

type Message struct {
	Id      int64  `xorm:"pk autoincr bigint(20) 'id'" json:"id"` //消息ID
	//谁发的
	UserId  int64  `xorm:"bigint(20) notnull default 0 'user_id'" json:"userId"` //谁发的
	//什么业务
	Cmd     int    `xorm:"int(10) notnull default 10 'cmd'" json:"cmd"` //群聊还是私聊
	//发给谁
	DstId   int64  `xorm:"bigint(20) notnull default 0 'dst_id'" json:"dstId"`//对端用户ID/群ID
	//怎么展示
	Media   int    `xorm:"int(10) notnull default 1 'media'" json:"media"` //消息按照什么样式展示
	//内容是什么
	Content string `xorm:"varchar(500) 'content'" json:"content"` //消息的内容
	//图片是什么
	Pic     string `xorm:"varchar(150) 'pic'" json:"pic"` //预览图片
	//连接是什么
	Url     string `xorm:"varchar(150) 'url'" json:"url"` //服务的URL
	//简单描述
	Memo    string `xorm:"varchar(255) 'memo'" json:"memo"` //简单描述
	//其他的附加数据，语音长度/红包金额
	Amount  int    `xorm:"int(10) notnull default 0 'amount'" json:"amount"` //其他和数字相关的
	//发送时间或者消息创建时间
	CreatedAt time.Time `xorm:"datetime 'created_at'"` //创建时间
}

const (
	//私聊
	CMD_SINGLE_MSG = 10
	//群聊
	CMD_ROOM_MS = 11
	//心跳检测，不处理
	CMD_HEART = 0
)

const (
	//文本样式
	MEDIA_TYPE_TEXT=1
	//新闻样式,类比图文消息
	MEDIA_TYPE_News=2
	//语音样式
	MEDIA_TYPE_VOICE=3
	//图片样式
	MEDIA_TYPE_IMG=4
	//红包样式
	MEDIA_TYPE_REDPACKAGR=5
	//emoj表情样式
	MEDIA_TYPE_EMOJ=6
	//超链接样式
	MEDIA_TYPE_LINK=7
	//视频样式
	MEDIA_TYPE_VIDEO=8
	//名片样式
	MEDIA_TYPE_CONCAT=9
	//其他自己定义,前端做相应解析即可
	MEDIA_TYPE_UDEF=100
)